package InterfaceGraphique;

import java.awt.Component;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFileChooser;
import munchkin.ParametresPartie;
import plateau.Partie;

/**
 *
 * @author stevemakler
 */
public class ExplorerOuverture extends Explorer {
    
    private String cheminFichierSelectionne;
    
    public ExplorerOuverture()
    {
        super();
    }

    public void Initialiser()
    {
        Explorer.setApproveButtonText("Ouvrir");
        Explorer.setMultiSelectionEnabled(false);
        Explorer.setFileSelectionMode(JFileChooser.FILES_ONLY);
    }
    
    public void OuvrirFenetre(Component parent)
    {
        int Resultat;
        Resultat = Explorer.showOpenDialog(parent);
        
        if(Resultat == JFileChooser.APPROVE_OPTION)  // L'utilisateur valide le chemin
        {
            cheminFichierSelectionne = Explorer.getSelectedFile().getPath();  
            
            //Initialisation des buffers et lecture de l'objet
            
           
        try {
            //Buffers input / Ouput
            ObjectInputStream fluxSortie = new ObjectInputStream(
                                            new BufferedInputStream(
                                            new FileInputStream(
                                            new File(cheminFichierSelectionne))));

          
            Partie.setParametres((ParametresPartie) fluxSortie.readObject());
            fluxSortie.close();

        

        }   catch (ClassNotFoundException ex) {
                Logger.getLogger(ExplorerOuverture.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IOException ex) {
            Logger.getLogger(FenetreValidationSauvegarde.class.getName()).log(Level.SEVERE, null, ex);
        }
            
        }

         //On recharge tout les parametres et on lance le jeu

        Partie.ChargerParametresJeu();
        
    }
          
    
    
}
